package modelos.datos;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name="evento",schema="public")
@PrimaryKeyJoinColumn(name="codevento")
public class evento {
	@Id
	@Column(name="codevento")
	private String CodEvento;
	@Column(name="nombreevento")
	private String Nombre;
	@Column(name="fechainicioevent")
	private Date FechaInicio;
	@Column(name="fechafinevent")
	private Date FechaFin;
	
	@ManyToMany(cascade = {CascadeType.ALL})
	 @JoinTable(name="evento_seccion", joinColumns={@JoinColumn(name="codevento")}, 
	 inverseJoinColumns={@JoinColumn(name="codseccion")})
	private Set<seccion> secciones=new HashSet();
	
	@OneToOne
	@JoinColumn(name="codtipoevento")
	private TipoEvento tipo;
	
	
	public evento(String codEvento, String nombre, Date fechaInicio,
			Date fechaFin) {
		super();
		CodEvento = codEvento;
		Nombre = nombre;
		FechaInicio = fechaInicio;
		FechaFin = fechaFin;
	
	}
	
	
	public evento() {
		// TODO Auto-generated constructor stub
	}


	public String getCodEvento() {
		return CodEvento;
	}
	public void setCodEvento(String codEvento) {
		CodEvento = codEvento;
	}
	public String getNombre() {
		return Nombre;
	}
	public void setNombre(String nombre) {
		Nombre = nombre;
	}
	public Date getFechaInicio() {
		return FechaInicio;
	}
	public void setFechaInicio(Date fechaInicio) {
		FechaInicio = fechaInicio;
	}
	public Date getFechaFin() {
		return FechaFin;
	}
	public void setFechaFin(Date fechaFin) {
		FechaFin = fechaFin;
	}


	

	public Set<seccion> getSecciones() {
		return secciones;
	}


	public void setSecciones(Set<seccion> secciones) {
		this.secciones = secciones;
	}


	public TipoEvento getTipo() {
		return tipo;
	}


	public void setTipo(TipoEvento tipo) {
		this.tipo = tipo;
	}
	
}

